/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
$(document).ready(function(){
$('#fecha_inicio').datepicker($.datepicker.regional['es']).change(ValidaCoherenciaFechaInicio);
$('#fecha_fin').datepicker($.datepicker.regional['es']).change(ValidaCoherenciaFechaFinal);

});

$(function(){
$('#formProcesarSolicitudPermiso').submit(function(){
    var Check=0;
if (VerificaTipoPermiso()) {Check++; }else{Check=0; return false;}
if (VerificaAsunto()) {Check++; }else{Check=0; return false;}
if (VerificaFechaInicio()) {Check++; }else{Check=0; return false;}
if (VerificaFechaFin()) {Check++; }else{Check=0; return false;}
if (ValidaCoherenciaFechaInicio()) {Check++; }else{Check=0; return false;}
if (ValidaCoherenciaFechaFinal()) {Check++; }else{Check=0; return false;}
if (Check >= 1){DisplayGuardado();}
//Si todo fue Bien enviamos el formulario.
return true;
}).end()
});

function VerificaAsunto(){
var Tipo=$('#asunto_permiso').val();
        if (Tipo!="default") {
            return true;
        }else{
            $('#spanError').html('Error, debe indicar un asunto que se relacione con su solicitud de permiso.');
            return false;
        }
}

function VerificaTipoPermiso(){
var Tipo=$('#tipo_permiso').val();
        if (Tipo!="default") {
            return true;
        }else{
            $('#spanError').html('Error, debe indicar el tipo de permiso que desea solicitar.');
            return false;
        }
}

function VerificaFechaInicio(){
    var FechaI = $("#fecha_inicio").val();
    if (FechaI.length<10) {
        $('#spanError').html('Error, debe ingresar la fecha de inicio de su permiso.');
        return false;
    }else{return true;}
}

function VerificaFechaFin(){
    var FechaI = $("#fecha_fin").val();
    if (FechaI.length<10) {
        $('#spanError').html('Error, debe ingresar la fecha de finalización de su permiso.');
        return false;
    }else{return true;}
}

function DisplayGuardado(){
   $('#CajaRespuestas').slideUp("def",function(){$('#spamGuardarPermiso').slideDown("slow").end();});
   
}

function limpiaFecha(){
    if ($(this).val()=="aaaa") {
        $(this).val('');
            }
}

function ValidaCoherenciaFechaInicio(){
    var FechaIni = new fecha($("#fecha_inicio").val());
    var FechaFin = new fecha($("#fecha_fin").val());

    //Obtiene objetos Date
   var miFechaIni = new Date( FechaIni.anio, FechaIni.mes, FechaIni.dia );
   var miFechaFin = new Date( FechaFin.anio, FechaFin.mes, FechaFin.dia );

      //Resta fechas y redondea
   var diferencia = (miFechaFin.getTime() - miFechaIni.getTime());
   var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24));

    //Verifica que no se seleccione una fecha pasada
    
   var Hoy = new Date();
   var DiaHoy = Hoy.getDate();
   var MesHoy = Hoy.getMonth()+1;
   var AnioHoy = Hoy.getYear();
   if (AnioHoy < 1000) {
    AnioHoy+=1900;
    }

    if (FechaIni.anio < AnioHoy) {
    $('#spanError').html('Error, el año inicial no puede ser del pasado.');
    return false;
    }else if((FechaIni.anio == AnioHoy) && (FechaIni.mes < MesHoy)){
        $('#spanError').html('Error, el mes inicial para el permiso no puede ser del pasado.');
        return false;
    }else if((FechaIni.anio == AnioHoy) && (FechaIni.mes == MesHoy) && (FechaIni.dia < DiaHoy)){
        $('#spanError').html('Error, no se acepta como fecha inicial un dia del pasado.');
        return false;
    }else{$('#spanError').empty();return true;}
}

function VerificaFechaInicio(){
    var FechaI = $("#fecha_inicio").val();
    if (FechaI.length<10) {
        $('#spanError').html('Error, debe ingresar la fecha de inicio de su permiso.');
        return false;
    }else{return true;}
}

function VerificaFechaFin(){
    var FechaI = $("#fecha_fin").val();
    if (FechaI.length<10) {
        $('#spanError').html('Error, debe ingresar la fecha de finalización de su permiso.');
        return false;
    }else{return true;}
}

function DisplayGuardado(){
   $('#CajaRespuestas').slideUp("def",function(){$('#spamGuardarPermiso').slideDown("slow").end();});

}

function limpiaFecha(){
    if ($(this).val()=="aaaa") {
        $(this).val('');
            }
}

function ValidaCoherenciaFechaFinal(){
    var FechaIni2 = new fecha($("#fecha_inicio").val());
    var FechaFin2 = new fecha($("#fecha_fin").val());

    //Obtiene objetos Date
   var miFechaIni2 = new Date( FechaIni2.anio, FechaIni2.mes, FechaIni2.dia );
   var miFechaFin2 = new Date( FechaFin2.anio, FechaFin2.mes, FechaFin2.dia );

      //Resta fechas y redondea
   var diferencia = (miFechaFin2.getTime() - miFechaIni2.getTime());
   var dias = Math.floor(diferencia / (1000 * 60 * 60 * 24));

    //Verifica que no se seleccione una fecha pasada

   var Hoy = new Date();
   var DiaHoy = Hoy.getDate();
   var MesHoy = Hoy.getMonth()+1;
   var AnioHoy = Hoy.getYear();
   if (AnioHoy < 1000) {
    AnioHoy+=1900;
    }

    if (FechaFin2.anio < FechaIni2.anio) {
    $('#spanError').empty();
    $('#spanError').html('Error, el año final no puede ser inferior al inicial.');
    return false;
    }else if((FechaIni2.anio == FechaFin2.anio) && (FechaIni2.mes > FechaFin2.mes)){
        $('#spanError').empty();
        $('#spanError').html('Error, el mes final para el permiso no puede ser inferior al inicial del mismo año.');
        return false;
    }else if((FechaIni2.anio == FechaFin2.anio) && (FechaIni2.mes == FechaFin2.mes) && (FechaIni2.dia > FechaFin2.dia)){
        $('#spanError').empty();
        $('#spanError').html('Error, no se acepta como fecha final un dia anterior al inicial del mismo mes.');
        return false;
    }else{$('#spanError').empty();return true;}
}

function fecha( cadena ) {

   //Separador para la introduccion de las fechas
   var separador = "/"

   //Separa por dia, mes y año
   if ( cadena.indexOf( separador ) != -1 ) {
        var posi1 = 0
        var posi2 = cadena.indexOf( separador, posi1 + 1 )
        var posi3 = cadena.indexOf( separador, posi2 + 1 )
        this.dia = cadena.substring( posi1, posi2 )
        this.mes = cadena.substring( posi2 + 1, posi3 )
        this.anio = cadena.substring( posi3 + 1, cadena.length )
   } else {
        this.dia = 0
        this.mes = 0
        this.anio = 0
   }
}
